package T3.GuerraConPaquetes;

public class Guerra {

    private Nave naveTerricolas, naveMarcianos;
    private int numeroDeTerricolas, numeroDeMarcianos;

    public Guerra(int numeroDeTerricolas, int numeroDeMarcianos) {
        this.numeroDeTerricolas = numeroDeTerricolas; 
        this.numeroDeMarcianos = numeroDeMarcianos;
        naveTerricolas = new Nave("Terricolas", numeroDeTerricolas);
        naveMarcianos = new Nave("Marcianos", numeroDeMarcianos);
    }

    public void empiezaGuerra() {
        do {
            int tamanoMaxTripulaciones = 
                    numeroDeTerricolas > 20 ? numeroDeTerricolas : numeroDeMarcianos;
            
            for (int i = 0; i < tamanoMaxTripulaciones && quedanVivosEnAmbasNaves(); i++) {
                if (i < numeroDeTerricolas) {
                    naveMarcianos.recibeDisparo(naveTerricolas.generaDisparo(i));
                }

                if (i < numeroDeMarcianos) {
                    naveTerricolas.recibeDisparo(naveMarcianos.generaDisparo(i));
                }
            }
        } while (quedanVivosEnAmbasNaves());
        
        if (naveTerricolas.cuantosQuedan() > 0) {
            System.out.println("GANARON LOS TERRICOLAS!!!!!");
        } else if (naveMarcianos.cuantosQuedan() > 0) {
            System.out.println("GANARON LOS MARCIANOS");
        }
    }

    private boolean quedanVivosEnAmbasNaves() {
        return naveTerricolas.cuantosQuedan() > 0 && naveMarcianos.cuantosQuedan() > 0;
    }

    public static void main(String[] args) {
        Guerra guerra = new Guerra(30, 10);
        guerra.empiezaGuerra();
    }
}